DCL(Data Control Language)

✒️ 2025-05-28 17:19 내용 수정


DCL(Data Control Language)

데이터를 제어하기 위한 언어

1. GRANT

-- 권한 부여
GRANT 권한 ON 데이터베이스명.객체명 TO 사용자ID@호스트;
GRANT 권한 ON 객체명 TO 사용자;
FLUSH PRIVILEGES; -- 권한 적용

-- 권한 확인
SHOW GRANT FOR 사용자@호스트명;
-- 특정 사용자에게 데이터베이스의 모든 객체에 모든 권한 부여
GRANT ALL PRIVILEGES ON DB명.* TO 사용자ID@호스트명;

-- 모든 사용자에게 데이터베이스의 모든 객체에 모든 권한 부여
GRANT ALL PRIVILEGES ON DB명.* TO 사용자ID@'%'; -- % 는 ANY의 표현

-- 특정 사용자에게 특정 테이블에 대한 SELECT 권한만 부여
GRANT SELECT ON DB명.테이블명 TO 사용자ID@호스트명;

-- 특정 사용자에게 특정 테이블에 대한 SELECT, INSERT 권한만 부여
GRANT SELECT, INSERT ON DB명.테이블명 TO 사용자ID@호스트명;

-- 사용자를 생성하고 모든 권한을 부여
GRANT ALL PRIVILEGES ON DB명.* TO 사용자ID@호스트명 IDENTIFIED BY 비밀번호;

2. DENY

DENY 권한 ON 데이터베이스명.객체명 TO 사용자ID@호스트;
DENY 권한 ON 객체명 TO 사용자;
-- 모든 사용자에게 데이터베이스의 모든 객체에 모든 권한을 거부
DENY ALL PRIVILEGES ON DB명.* TO 사용자ID@'%'; -- % 는 ANY의 표현

-- 특정 사용자에게 특정 테이블에 대한 SELECT 권한을 거부
DENY SELECT ON DB명.테이블명 TO 사용자ID@호스트명;

-- 특정 사용자에게 데이터베이스의 모든 객체에 대한 SELECT, INSERT 권한을 거부
DENY SELECT, INSERT ON DB명.* TO 사용자ID@호스트명;

3. REVOKE

REVOKE 권한 ON 데이터베이스명.객체명 [TO|FROM] 사용자ID@호스트;
REVOKE 권한 ON 객체명 [TO|FROM] 사용자;
-- 특정 사용자에게 특정 테이블에 대한 SELECT 권한을 되돌림
REVOKE SELECT ON DB명.테이블명 TO 사용자ID@호스트명;

-- 특정 사용자에게 데이터베이스의 모든 객체에 대한 SELECT, INSERT 권한을 되돌림
REVOKE SELECT, INSERT ON DB명.* TO 사용자ID@호스트명;